package com.xiyu.service.repository.nurse.item;

import com.xiyu.service.model.nurse.item.NurseItem;
import com.xiyu.service.model.nurse.item.NurseItemTable;
import com.xiyu.service.vo.nurse.nurseItem.NurseItemQueryInput;
import org.babyfish.jimmer.spring.repository.JRepository;
import org.babyfish.jimmer.Page;
import org.springframework.util.StringUtils;

import java.util.Optional;

public interface NurseItemRepository extends JRepository<NurseItem, Long> {
    NurseItemTable nurseItemTable = NurseItemTable.$;

    Optional<NurseItem> findFirstByItemName(String itemName);

    Optional<NurseItem> findFirstByItemNameAndIdNot(String itemName, Long id);

    default Page<NurseItem> pageQuery(NurseItemQueryInput inputVO){
        return sql().createQuery(nurseItemTable)
                .whereIf(StringUtils.hasText(inputVO.getItemName()), () -> nurseItemTable.itemName().like(inputVO.getItemName()))
                .orderBy(nurseItemTable.id().desc())
                .select(nurseItemTable)
                .fetchPage(inputVO.getPageNo() - 1, inputVO.getPageSize());
    }
}